package com.keba.lamp.ai.service.impl;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.keba.basic.utils.ArgumentAssert;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.keba.lamp.ai.service.AiApplicationService;
import com.keba.basic.base.service.impl.SuperServiceImpl;
import com.keba.lamp.ai.manager.AiApplicationManager;
import com.keba.lamp.ai.entity.AiApplication;
import com.keba.lamp.ai.vo.save.AiApplicationSaveVO;
import com.keba.lamp.ai.vo.update.AiApplicationUpdateVO;

/**
 * <p>
 * 业务实现类
 * 应用表
 * </p>
 *
 * @author twg
 * @date 2025-03-02 19:36:35
 * @create [2025-03-02 19:36:35] [twg] [代码生成器生成]
 */
@Slf4j
@RequiredArgsConstructor
@Service
public class AiApplicationServiceImpl extends SuperServiceImpl<AiApplicationManager, Long, AiApplication> implements AiApplicationService {

    @Override
    protected <SaveVO> AiApplication saveBefore(SaveVO saveVO) {
        AiApplicationSaveVO saveVo = (AiApplicationSaveVO) saveVO;
        ArgumentAssert.isFalse(superManager.exists(Wrappers.lambdaQuery(AiApplication.class).eq(AiApplication::getName, saveVo.getName()).eq(AiApplication::getCustomerId, saveVo.getCustomerId())),"应用名称已存在");
        return super.saveBefore(saveVO);
    }

    @Override
    protected <UpdateVO> AiApplication updateBefore(UpdateVO updateVO) {
        AiApplicationUpdateVO updateVo = (AiApplicationUpdateVO) updateVO;
        ArgumentAssert.isFalse(superManager.exists(Wrappers.lambdaQuery(AiApplication.class).ne(AiApplication::getId, updateVo.getId()).eq(AiApplication::getName, updateVo.getName()).eq(AiApplication::getCustomerId, updateVo.getCustomerId())),"应用名称已存在");
        return super.updateBefore(updateVo);
    }
}


